package com.ruoyi.system.service.impl;

import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.Poster;
import com.ruoyi.system.domain.vo.business.PosterSelectListDto;
import com.ruoyi.system.mapper.PosterMapper;
import com.ruoyi.system.service.IPosterService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.crypto.spec.PSource;
import java.rmi.ServerException;
import java.security.SignatureException;
import java.util.List;

/**
 * 专题管理Service业务层处理
 *
 * @author ruoyi
 * @date 2024-02-26
 */
@Service
public class PosterServiceImpl implements IPosterService {
    @Autowired
    private PosterMapper posterMapper;

    /**
     * 查询专题管理
     *
     * @param id 专题管理主键
     * @return 专题管理
     */
    @Override
    public Poster selectPosterById(Integer id) {
        return posterMapper.selectPosterById(id);
    }

    /**
     * 查询专题管理列表
     *
     * @param poster 专题管理
     * @return 专题管理
     */
    @Override
    public List<Poster> selectPosterList(PosterSelectListDto poster) {
        return posterMapper.selectPosterList(poster);
    }

    /**
     * 新增专题管理
     *
     * @param poster 专题管理
     * @return 结果
     */
    @Override
    public int insertPoster(Poster poster) throws ServerException {
        String name = poster.getName();
        List<String> names = posterMapper.selectByName(name,null);
        if (CollectionUtils.isNotEmpty(names)){
            throw new ServerException("专题名: "+name+ "已存在");
        }
        poster.setCreateTime(DateUtils.getNowDate());
        poster.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
        poster.setDeleted("0");
        return posterMapper.insertPoster(poster);
    }

    /**
     * 修改专题管理
     *
     * @param poster 专题管理
     * @return 结果
     */
    @Override
    public int updatePoster(Poster poster) throws ServerException {
        List<String> names = posterMapper.selectByName(poster.getName(),poster.getId());
        if (CollectionUtils.isNotEmpty(names)){
            throw new ServerException("专题名: "+poster.getName()+ "已存在");
        }
        poster.setUpdateTime(DateUtils.getNowDate());
        poster.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
        return posterMapper.updatePoster(poster);
    }

    /**
     * 批量删除专题管理
     *
     * @param ids 需要删除的专题管理主键
     * @return 结果
     */
    @Override
    public int deletePosterByIds(String ids) {
        return posterMapper.deletePosterByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除专题管理信息
     *
     * @param id 专题管理主键
     * @return 结果
     */
    @Override
    public int deletePosterById(Integer id) {
        return posterMapper.deletePosterById(id);
    }
}
